<?php
// $Id: switch.php,v 1.3 2006/07/30 22:43:21 alex Exp $
$Switcher = $MT_mod_cust['Switcher'];
$filename = 'dat/docs';

// Разбираем путь
while($this_doc = $Switcher->next())
{
	if (!mst_util_nodirs($this_doc) AND !mst_util_norelative($this_doc))
	{
		// Путь содержит
		mst_error('Плохое имя файла',
			"Через запрос ({_SERVER['QUERY_STRING']})передано плохое имя файла ('{$filename}')",0);

		$Switcher->subswitch('switch','error','switch.php',0,null,'404');
	}
	$filename .= "/{$this_doc}";
}

$syspath_file = mst_modpath($MT_mod_name,$filename,true);
if ($syspath_file)
{
	// Путь существует
	if (is_dir($syspath_file))
	{
		// Это папка
		$syspath_file .= '/index.mtd';
		if (!is_file($syspath_file))
		{
			// Файл по умолчанию для папки не существует
			$Switcher->subswitch('switch','error','switch.php',0,null,'404');
			return;
		}
	}
	// Проверяем расширение
	switch (pathinfo($syspath_file,PATHINFO_EXTENSION))
	{
		//
		case 'mtd':
			// Читаем файл формата mtd
			include($Switcher->path_branch('/parsemtd.php'));
		break;
		case 'mtdconf':
			// Попытка обратиться к файлу конфигурации папки
			$Switcher->subswitch('switch','error','switch.php',0,null,'404');
		break;		
		default:
			// Все остальные расширения
			$Switcher->tml_mime(mime_content_type($syspath_file),true);
			readfile($syspath_file);
		break;
	}
	
}else
{
	// Файл не найден
	// Ошибка 404
	$rdisp = $Switcher->get_rdisp();
	$cdisp = $Switcher->get_cdisp();
	// echo "<!-- {$rdisp} {$cdisp} {$filename} {$syspath_file} -->";
	$Switcher->subswitch('switch','error','switch.php',0,null,'404');
	return;
}

?>